python的decimal数值 decimal.decimal python

您所在的位置:网站首页 python3 import用法 python的decimal数值 decimal.decimal python

python的decimal数值 decimal.decimal python

#python的decimal数值 decimal.decimal python| 来源: 网络整理| 查看: 265

python的decimal数值 decimal.decimal python 转载

mob6454cc6d1c0b 2023-06-27 00:51:01

文章标签 python的decimal数值 python  decimal 固定精度浮点类型 python3 文章分类 Python 后端开发

在Django中遇到商品金额时只知道使用decimalfiled,但是并不是特别了解底层的python decimal模块,偶然看书学习到这块,做个记录跟博友们一起分享。

decimal 模块是python内置模块, 不需要安装,直接导入即可

import decimal

简单使用

d = decimal.Decimal('3.1415926')

在python3环境中,这里最好传入一个字符串,如果传入了一个浮点型,decimal对象的浮点精度得不到保证。

想要控制浮点精度时,可以通过

decimal.getcontext().prec = 3

执行完这条语句后,所有非直接通过直创建得来的decimal对象,比如通过计算得来的decimal对象,输出时的精度都将以这条赋值的精度为准,本质是设置了全局精度。

也可以使用小数上下文管理器,重新 设置一个临时小数精度。在语句退出后,精度重新设为初始值。

执行代码

d = decimal.Decimal(3) a = decimal.Decimal(3.1415926) print(d) # 3 print(a) # 3.14159260000000006840537025709636509418487548828125 print(d+a+a) # 9.283185200000000136810740514 #设置全局精度 decimal.getcontext().prec = 2 d = decimal.Decimal(3) a = decimal.Decimal('3.1415926') print(d) # 3 print(a) # 3.1415926 print(d+a+a) # 9.28 #小数上下文管理器 with decimal.localcontext() as ctx": ctx.prec = 3 print(d+a+a) # 9.283 #管理器语句退出后,精度恢复 print(a+a) # 6.28 print(d+a) # 6.14

 

本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。 收藏 评论 分享 举报

上一篇:java使用solr教程 so调用java方法

下一篇:android 字符串大小写转换工具 android字符串赋值



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3